Data storage system managers and designers are constantly faced with the problem of how to best design large data storage systems to optimize system performance and increase reliability.
If the data storage system is designed with high I/O activity and low storage space requirements in mind, the consequences of running out of data storage space can be significant. Conversely, a system designed to provide a large amount of data storage and a low to moderate amount of I/O activity will suffer performance degradation during periods of peak I/O activity. Although both types of system designs work well for their intended purpose, neither provides a data storage system which is capable of changing configuration along with a corresponding change in I/O activity vs. disk space requirements change. Thus, most systems compromise disk storage space for an increased I/O activity level or vice versa. Additionally, if a portion of the system should malfunction, the system may become inoperable, or at best, operate with decreased performance due to the malfunction.
Although some systems can be expanded or reconfigured by adding and/or subtracting from the system hardware, all or a portion of the data storage system may have to be taken off line to effect the changes in configuration. Most importantly, a change in system configuration to generally optimize system performance may not provide for optimum system performance during certain periods of time or for processing certain types of data.